<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="Content-Language" content="zh-CN"><title>systemd.preset
  中文手册 [金步国]</title><style>
@font-face { font-family: "JinBuGuoWebMono"; src: url("http://www.jinbuguo.com/d/mono.ttf") format("truetype"); }
* { font-family: "JinBuGuoWebMono", "Ubuntu Mono", "Consolas", "Menlo", monospace; }
body { margin:10px; }
h1 { text-align:center; background:#ddd; }
h2#auth_name { text-align:center; margin: 10px 5%; }

    a.headerlink {
      color: #c60f0f;
      font-size: 0.8em;
      padding: 0 4px 0 4px;
      text-decoration: none;
      visibility: hidden;
    }

    a.headerlink:hover {
      background-color: #c60f0f;
      color: white;
    }

    h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
      visibility: visible;
    }
</style><script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?d286c55b63a3c54a1e43d10d4c203e75"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><h1>systemd.preset 中文手册</h1><h2 id="auth_name">译者：<strong><a href="http://www.jinbuguo.com/">金步国</a></strong></h2><hr><h3>版权声明</h3><p>本文译者是一位开源理念的坚定支持者，所以本文虽然不是软件，但是遵照开源的精神发布。</p><ul><li>无担保：本文译者不保证译文内容准确无误，亦不承担任何由于使用此文档所导致的损失。</li><li>自由使用：任何人都可以自由的<u>阅读/链接/打印</u>此文档，无需任何附加条件。</li><li>名誉权：任何人都可以自由的<u>转载/引用/再创作</u>此文档，但必须保留译者署名并注明出处。</li></ul><h3>其他作品</h3><p>本文译者十分愿意与他人分享劳动成果，如果你对我的其他翻译作品或者技术文章有兴趣，可以在如下位置查看现有的作品集：</p><ul><li><a href="http://www.jinbuguo.com/">金步国作品集</a> [ <a href="http://www.jinbuguo.com/">http://www.jinbuguo.com/</a> ]</li></ul><h3>联系方式</h3><p>由于译者水平有限，因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好)，请来信指出，任何提高译文质量的建议我都将虚心接纳。</p><ul><li>Email(QQ)：70171448在QQ邮箱</li></ul><hr><a href="systemd.index.html">手册索引</a> ·
  <a href="systemd.directives.html">指令索引</a><span style="float:right">systemd-241</span><hr><div class="refentry"><a name="systemd.preset"></a><div class="titlepage"></div><div class="refnamediv"><h2>名称</h2><p>systemd.preset — 服务预设文件</p></div><div class="refsynopsisdiv"><h2>大纲</h2><p><code class="filename">/etc/systemd/system-preset/*.preset</code></p><p><code class="filename">/run/systemd/system-preset/*.preset</code></p><p><code class="filename">/usr/lib/systemd/system-preset/*.preset</code></p><p><code class="filename">/etc/systemd/user-preset/*.preset</code></p><p><code class="filename">/run/systemd/user-preset/*.preset</code></p><p><code class="filename">/usr/lib/systemd/user-preset/*.preset</code></p></div><div class="refsect1"><a name="id-1.5"></a><h2 id="描述">描述<a class="headerlink" title="Permalink to this headline" href="systemd.preset.html#%E6%8F%8F%E8%BF%B0">¶</a></h2><p>预设文件(*.preset)可用于设置哪些单元应该
    默认启用/停用。
    <span class="command"><strong>systemctl preset</strong></span> 
    命令(详见
    <a href="systemctl.html#"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>)
    通常用于
    软件包的安装脚本。
    在
    安装开始之前或完成之后，
    根据预设文件的指引，
    启用或停用
    一组特定的单元。</p><p>详见
     <a class="ulink" href="https://www.freedesktop.org/wiki/Software/systemd/Preset" target="_top">Presets</a>
    文档以了解更多有关预设的逻辑。</p><p>反对在软件包中内置预设文件，
    而是应该在发行版内部
    将所有预设文件集中在一起，
    以方便系统管理员修改预设策略。</p><p>如果不存在预设文件，<span class="command"><strong>systemctl
    preset</strong></span> 命令将会默认启用所有已安装的单元。
    如果这不是你想要的(也就是其实你想默认停用所有单元)，
    那么必须内置一个仅包含一行
    "<code class="filename">disable *</code>"
    的预设文件(参见下文的"例1")</p></div><div class="refsect1"><a name="id-1.6"></a><h2 id="预设文件格式">预设文件格式<a class="headerlink" title="Permalink to this headline" href="systemd.preset.html#%E9%A2%84%E8%AE%BE%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F">¶</a></h2><p>预设文件的格式是一系列
    "enable|disable 单元名"
    模式的行，
    其中的"单元名"可以包含shell风格的通配符。
    空白行和以 # 或 ; 开头的行
    将被忽略。</p><p>注意，必须在预设中引用"真实"的单元文件，不可引用任何别名(参见
    <a href="systemd.unit.html#"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>
    以了解单元的"别名")。</p><p>
    "<code class="literal">enable</code>" 表示默认启用指定的单元、
    "<code class="literal">disable</code>" 表示默认停用指定的单元。</p><p>如果多行都匹配同一个单元，
    那么以第一个匹配的行为准。</p><p>预设文件的名称必须符合
    "<code class="filename">优先级-策略名.preset</code>" 格式，
    其中的"优先级"是两位十进制数字。
    软件包应该将自带的预设文件安装在
     <code class="filename">/usr/lib/</code> 目录中。
    <code class="filename">/etc/</code> 目录仅供系统管理员使用。
    所有的预设文件(无论位于哪个目录中)，
    统一按照文件名的字典顺序处理。
    如果有多个预设文件都作用于同一个单元，
    那么仅以文件名最靠前(前缀数字最小)的那一个为准。
    对于不同目录下的同名预设文件，
    仅以优先级最高的目录中的那一个为准。
    具体说来就是：
    <code class="filename">/etc/</code> 的优先级最高、
    <code class="filename">/run/</code> 的优先级居中、
    <code class="filename">/usr/lib/</code> 的优先级最低。</p><p>如果系统管理员想要屏蔽 
    <code class="filename">/usr/lib/</code> 目录中的某个预设文件，
    那么最佳做法是在 <code class="filename">/etc/</code> 目录中
    创建一个指向 <code class="filename">/dev/null</code> 的同名符号链接，
    即可彻底屏蔽 <code class="filename">/usr/lib/</code> 目录中的同名文件。</p></div><div class="refsect1"><a name="id-1.7"></a><h2 id="例子">例子<a class="headerlink" title="Permalink to this headline" href="systemd.preset.html#%E4%BE%8B%E5%AD%90">¶</a></h2><div class="example"><a name="id-1.7.2"></a><p class="title"><b>例 1. 默认停用</b></p><div class="example-contents"><pre class="programlisting"># /usr/lib/systemd/system-preset/99-default.preset

disable *</pre></div></div><br class="example-break"><p>默认停用所有单元。将前缀设为
    "<code class="literal">99-</code>"
    以确保被最后读取(优先级最低、易于被覆盖)。</p><div class="example"><a name="id-1.7.4"></a><p class="title"><b>例 2. 一个针对 GNOME 定制的预设</b></p><div class="example-contents"><pre class="programlisting"># /usr/lib/systemd/system-preset/50-gnome.preset

enable gdm.service
enable colord.service
enable accounts-daemon.service
enable avahi-daemon.*</pre></div></div><br class="example-break"><p>这是一个GNOME软件包自带的预设文件。
    明确启用三个指定的单元以及所有前缀名为
     <code class="filename">avahi-daemon</code>
    的单元(不考虑单元类型)。
    这样可以确保
    仅启用所有GNOME所依赖的单元，
    同时又不改变其他单元。</p><div class="example"><a name="id-1.7.6"></a><p class="title"><b>例 3. 管理员自定义的预设</b></p><div class="example-contents"><pre class="programlisting"># /etc/systemd/system-preset/00-lennart.preset

enable httpd.service
enable sshd.service
enable postfix.service
disable *</pre></div></div><br class="example-break"><p>这是一个系统管理员自定义的预设策略。
    在明确启用了三个指定单元的同时，
    停用了所有其他单元。
    将前缀设为 "<code class="literal">00-</code>" 以确保被最先读取(优先级最高)，
    这样所有之后与此冲突的预设文件都将变得无效。</p></div><div class="refsect1"><a name="id-1.8"></a><h2 id="参见">参见<a class="headerlink" title="Permalink to this headline" href="systemd.preset.html#%E5%8F%82%E8%A7%81">¶</a></h2><p>
      <a href="systemd.html#"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
      <a href="systemctl.html#"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
      <a href="systemd-delta.html#"><span class="citerefentry"><span class="refentrytitle">systemd-delta</span>(1)</span></a>
    </p></div></div></body></html>
